Recent advances in computer performance have enabled hardware graphics systems to provide more realistic graphical images using personal computers and home video game computers. In such graphic systems, some procedure must be implemented to “render” or draw graphic primitives to the screen of the system. A “graphic primitive” is a basic component of a graphic picture, such as a polygon, a triangle, a line or a point. All graphic pictures are formed with combinations of these graphic primitives. Many procedures may be utilized to perform graphic primitive rendering.
Early graphic systems displayed images representing objects using just colored polygons. That is, textures, bumps, scratches, or other surface features were very expensive to model because they had to be drawn with individual polygons. In order to improve the quality of the image, texture mapping was developed to model the complexity of real world surface images. In general, texture mapping is the mapping of an image or a function onto a surface. Texture mapping is a relatively efficient technique for creating the appearance of a complex image without the tedium and the high computational cost of rendering the actual three dimensional detail that might be found on a surface of an object.
In recent prior art, texture mapping has been conducted with pixel shading techniques. Prior Art FIG. 1 illustrates a graphics system 100 equipped with pixel shading capabilities. As shown, the graphics system 100 is equipped with a 3-D graphics pipeline 108 capable of receiving graphics data 102, 104, 106. Such graphics data may include geometry which is transform, lighted, and rendered during the course of graphics processing utilizing the 3-D graphics pipeline 108. Various aspects of the foregoing processing may be performed utilizing a shader component of the 3-D graphics pipeline 108.
Once the graphics data is processed, it is saved in a frame buffer 112 in the form of output packets 110 that are adapted for being depicted on a display 114. It should be noted that the location in which the graphics data is stored is based on instructions 109 associated with the 3-D graphics pipeline 108.
One of the key advantages of this graphics system 100 is that processing for graphics data can “loop.” In one context, a first loop 115 may be employed to process graphics data during multiple instances in a single processing pass in the 3-D graphics pipeline 108. In particular, the processing can loop many times and use a variety of math operations to blend texture and color data, and to compute new texture coordinates, allowing a much more complicated and visually rich resulting image. Still yet, during a second loop 116, the graphics data resulting from one processing pass in the 3-D graphics pipeline 108 can influence the processing of graphics data in a subsequent pass in the 3-D graphics pipeline 108.
In any case, the number of output packets 110 that may be output and saved to the frame buffer 112 is limited to one, during the course of a single pass in current graphics pipeline implementations. This feature inherently limits the amount of graphics data that may be processed and, more importantly, saved to the frame buffer 112 in a single pass.
There is thus a need for a technique of storing multiple output packets of processed graphics data to a frame buffer in a single pass.